package name.cyrax.red.jpv.impl.adapters;

import name.cyrax.red.jpv.api.adapters.NumericAccessor;
import name.cyrax.red.jpv.api.funcs.info.ValueType;

public abstract class LongImpl extends NumericImpl<Long>
{

	@Override public <T> T detectType(NumericAccessor<T> accessor)
	{
		return accessor.asLong(asLong());
	}

	@Override public double getDouble(int index)
	{
		return getLong(index);
	}

	@Override public int getInteger(int index)
	{
		return (int) getLong(index);
	}

	@Override public Long getNumber(int index)
	{
		return getLong(index);
	}
	
	@Override public ValueType getUnderlyingType()
	{
		return ValueType.LONG;
	}

}
